package com.ljf.daily.costmanagement.model;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.ljf.common.model.BasisModel;
import com.ljf.daily.costmanagement.enums.DailyDatCostManagementConfigDailyConsumptionEnum;
import com.ljf.daily.costmanagement.enums.DailyDatCostManagementConfigDifferentLevellingEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;

/**
 * 费用管理配置对象  daily_dat_cost_management_config
 *
 * @author LJF
 * @since 2025-04-03
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("费用管理配置")
@TableName("daily_dat_cost_management_config")
@EqualsAndHashCode(callSuper = true)
public class DailyDatCostManagementConfig extends BasisModel {

	private static final long serialVersionUID = 1L;

	/**
	 * Java类型: Long
	 * 数据库类型: bigint
	 * 注释: ID
	 * {@link DailyDatCostManagementConfig#COL_ID}
	 */
	@TableId(value="id", type= IdType.AUTO)
	@JsonProperty("id")
	@ApiModelProperty(value = "ID")
	private Long id;

	/**
	 * Java类型: String
	 * 数据库类型: char(6)
	 * 注释: 编码
	 * {@link DailyDatCostManagementConfig#COL_CODE}
	 */
	@TableField("code")
	@JsonProperty("code")
	@ApiModelProperty(value = "编码")
	private String code;

	/**
	 * Java类型: String
	 * 数据库类型: char(6)
	 * 注释: 账户编码
	 * {@link DailyDatCostManagementConfig#COL_ACCOUNT_CODE}
	 */
	@TableField("account_code")
	@JsonProperty("accountCode")
	@ApiModelProperty(value = "账户编码")
	private String accountCode;

	/**
	 * Java类型: String
	 * 数据库类型: char(12)
	 * 注释: 预扣软件编码
	 * {@link DailyDatCostManagementConfig#COL_WITHHOLD_SOFTWARE_CODE}
	 */
	@TableField("withhold_software_code")
	@JsonProperty("withholdSoftwareCode")
	@ApiModelProperty(value = "预扣软件编码")
	private String withholdSoftwareCode;

	/**
	 * Java类型: String
	 * 数据库类型: char(12)
	 * 注释: 还原软件编码
	 * {@link DailyDatCostManagementConfig#COL_RESTORE_SOFTWARE_CODE}
	 */
	@TableField("restore_software_code")
	@JsonProperty("restoreSoftwareCode")
	@ApiModelProperty(value = "还原软件编码")
	private String restoreSoftwareCode;

	/**
	 * Java类型: String
	 * 数据库类型: char(12)
	 * 注释: 差异软件编码
	 * {@link DailyDatCostManagementConfig#COL_DIFFERENT_SOFTWARE_CODE}
	 */
	@TableField("different_software_code")
	@JsonProperty("differentSoftwareCode")
	@ApiModelProperty(value = "差异软件编码")
	private String differentSoftwareCode;

	/**
	 * Java类型: String
	 * 数据库类型: char(12)
	 * 注释: 扣款软件编码
	 * {@link DailyDatCostManagementConfig#COL_DEDUCTION_SOFTWARE_CODE}
	 */
	@TableField("deduction_software_code")
	@JsonProperty("deductionSoftwareCode")
	@ApiModelProperty(value = "扣款软件编码")
	private String deductionSoftwareCode;

	/**
	 * Java类型: Integer
	 * 数据库类型: tinyint
	 * 注释: 差异调平(1:进行差异调平;2:不进行差异调平)
	 * {@link DailyDatCostManagementConfig#COL_DIFFERENT_LEVELLING}
	 * {@link DailyDatCostManagementConfigDifferentLevellingEnum}
	 */
	@TableField("different_levelling")
	@JsonProperty("differentLevelling")
	@ApiModelProperty(value = "差异调平(1:进行差异调平;2:不进行差异调平)")
	private Integer differentLevelling;

	/**
	 * Java类型: String
	 * 数据库类型: char(12)
	 * 注释: 调平软件编码
	 * {@link DailyDatCostManagementConfig#COL_LEVELLING_SOFTWARE_CODE}
	 */
	@TableField("levelling_software_code")
	@JsonProperty("levellingSoftwareCode")
	@ApiModelProperty(value = "调平软件编码")
	private String levellingSoftwareCode;

	/**
	 * Java类型: Integer
	 * 数据库类型: tinyint
	 * 注释: 日常消耗(1:计入日常消耗;2:不计入日常消耗)
	 * {@link DailyDatCostManagementConfig#COL_DAILY_CONSUMPTION}
	 * {@link DailyDatCostManagementConfigDailyConsumptionEnum}
	 */
	@TableField("daily_consumption")
	@JsonProperty("dailyConsumption")
	@ApiModelProperty(value = "日常消耗(1:计入日常消耗;2:不计入日常消耗)")
	private Integer dailyConsumption;

	/**
	 * Java类型: String
	 * 数据库类型: char(12)
	 * 注释: 消耗软件编码
	 * {@link DailyDatCostManagementConfig#COL_CONSUME_SOFTWARE_CODE}
	 */
	@TableField("consume_software_code")
	@JsonProperty("consumeSoftwareCode")
	@ApiModelProperty(value = "消耗软件编码")
	private String consumeSoftwareCode;


	/**
	 * ID
	 * {@link DailyDatCostManagementConfig#id}
	 */
	public static final String COL_ID = "id";
	/**
	 * 编码
	 * {@link DailyDatCostManagementConfig#code}
	 */
	public static final String COL_CODE = "code";
	/**
	 * 账户编码
	 * {@link DailyDatCostManagementConfig#accountCode}
	 */
	public static final String COL_ACCOUNT_CODE = "account_code";
	/**
	 * 预扣软件编码
	 * {@link DailyDatCostManagementConfig#withholdSoftwareCode}
	 */
	public static final String COL_WITHHOLD_SOFTWARE_CODE = "withhold_software_code";
	/**
	 * 还原软件编码
	 * {@link DailyDatCostManagementConfig#restoreSoftwareCode}
	 */
	public static final String COL_RESTORE_SOFTWARE_CODE = "restore_software_code";
	/**
	 * 差异软件编码
	 * {@link DailyDatCostManagementConfig#differentSoftwareCode}
	 */
	public static final String COL_DIFFERENT_SOFTWARE_CODE = "different_software_code";
	/**
	 * 扣款软件编码
	 * {@link DailyDatCostManagementConfig#deductionSoftwareCode}
	 */
	public static final String COL_DEDUCTION_SOFTWARE_CODE = "deduction_software_code";
	/**
	 * 差异调平(1:进行差异调平;2:不进行差异调平)
	 * {@link DailyDatCostManagementConfig#differentLevelling}
	 */
	public static final String COL_DIFFERENT_LEVELLING = "different_levelling";
	/**
	 * 调平软件编码
	 * {@link DailyDatCostManagementConfig#levellingSoftwareCode}
	 */
	public static final String COL_LEVELLING_SOFTWARE_CODE = "levelling_software_code";
	/**
	 * 日常消耗(1:计入日常消耗;2:不计入日常消耗)
	 * {@link DailyDatCostManagementConfig#dailyConsumption}
	 */
	public static final String COL_DAILY_CONSUMPTION = "daily_consumption";
	/**
	 * 消耗软件编码
	 * {@link DailyDatCostManagementConfig#consumeSoftwareCode}
	 */
	public static final String COL_CONSUME_SOFTWARE_CODE = "consume_software_code";

}
